From 6e88ee268dded9c251b085f24e19b4932e457811 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Sat, 30 Apr 2005 08:35:33 +0000 Subject: [PATCH] bitkeeper revision 1.1389.1.14 (427343557mBKHXIKNWB3vC3vSFMQ7g) Fix xc_ptrace for paravirtualized guests. Signed-off-by: Kip Macy --- tools/libxc/xc_ptrace.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/libxc/xc_ptrace.c b/tools/libxc/xc_ptrace.c index 4c79d497a7..df05b59d4e 100644 --- a/tools/libxc/xc_ptrace.c +++ b/tools/libxc/xc_ptrace.c @@ -181,7 +181,8 @@ map_domain_va(unsigned long domid, int cpu, void * guest_va, int perm) } if ((pde = cr3_virt[cpu][vtopdi(va)]) == 0) /* logical address */ goto error_out; - pde = page_array[pde >> PAGE_SHIFT] << PAGE_SHIFT; + if (ctxt[cpu].flags & VGCF_VMX_GUEST) + pde = page_array[pde >> PAGE_SHIFT] << PAGE_SHIFT; if (pde != pde_phys[cpu]) { pde_phys[cpu] = pde; @@ -194,7 +195,8 @@ map_domain_va(unsigned long domid, int cpu, void * guest_va, int perm) } if ((page = pde_virt[cpu][vtopti(va)]) == 0) /* logical address */ goto error_out; - page = page_array[page >> PAGE_SHIFT] << PAGE_SHIFT; + if (ctxt[cpu].flags & VGCF_VMX_GUEST) + page = page_array[page >> PAGE_SHIFT] << PAGE_SHIFT; if (page != page_phys[cpu] || perm != prev_perm[cpu]) { page_phys[cpu] = page; -- 2.30.2